package exception;

public class TryCatchDemo {
    /*
    * 异常处理不是处理逻辑上的错误，而是用来处理明知道会发生异常但是无法避免的情况
    * */
    public static void main(String[] args) {
        System.out.println(1);
        try {//检测到异常后会跳过剩下的代码并执行对应的catch代码块，
            String s = null;
            s.toString();
            System.out.println(s.length());
            String s2 = "";
            System.out.println(s2.charAt(0));
        }/*catch (NullPointerException e) {
            System.out.println("发生了空指针异常，并解决了");
        }catch (StringIndexOutOfBoundsException e) {
            System.out.println("发生了数组下标越界异常，并解决了");
        }*/
        //当多个异常采用相同处理方式时可以用 | 合并到同一个catch解决
        catch (NullPointerException | StringIndexOutOfBoundsException e) {
            System.out.println("发生了异常，并解决了");
        }
        //当一类异常都可以使用相同解决方式时，我们可以采用捕获这一类异常的统一的超类
        catch (Exception e) {//尽量不用Exception
            System.out.println("......");
        }
        System.out.println(2);
    }
}
